home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 235 / Issue 235 - September 2007 - DPCS0907DVD.ISO / Extras / NetObjects Fusion / NOF10.exe / data1.cab / FSI / lib / nof / dataobjects / DataCollection.js next >
Encoding:
JavaScript  |  2007-04-11  |  3.4 KB  |  124 lines

  1. /** Class DataCollection
  2. Description : Implement the object used for data collections like: manufacturer, sales, shipping
  3. */
  4. function NOF_DataCollection() {
  5.   this.__proto__ = NOF_DataCollection.prototype;
  6.   this.SUPER ();  
  7.   this.selected = null;
  8.   this.selectedIndex = -1;
  9. }
  10. NOF_DataCollection.inherits( NOF.UTIL.ArrayList );
  11. function NOF_DataCollection_ProtoBuilder() {  
  12.   var method = NOF_DataCollection.prototype;
  13.   
  14.   method.load = function load() {
  15.     // load from FSI
  16.     NOF.Contract.Assert( false, "Load needs to be implemented." );
  17.   }
  18.   
  19.   method.save = function save() {
  20.     // save
  21.     NOF.Contract.Assert( false, "Save needs to be implemented." );
  22.     /*
  23.     for (var i=0;i<this._list.length;i++) {
  24.       alert ("List elem:"+this._list[i]);
  25.     }
  26.     */
  27.   }
  28.  
  29.   method.getListElements = function getListElements () {
  30.     return this.toArray();
  31.   }
  32.   
  33.   method.setListElements = function setListElements (list) {
  34.     this._list = list;
  35.   }
  36.   
  37.   method.clearCollection = function clearCollection () {
  38.     this.clear();
  39.     this.selected = null;
  40.     this.selectedIndex = -1;
  41.   }
  42.   
  43.   method.addElementToList= function addElementToList () {
  44.     //debugger;
  45.     var id = this._list.length;
  46.     var newObject = this.getNewElement(id, arguments);
  47.     //log.info("Datacollection.addElementToList " + newObject);
  48.         this.add(id, newObject);
  49.     return newObject;
  50.   }
  51.   
  52.   method.getNewElement = function getNewElement (id) {
  53.     return id;
  54.   }
  55.   
  56.   method.removeElementFromList = function removeElementFromList (element) {    
  57.     var index = this.getIndex(element);
  58.     if (index != -1 ) {
  59.       this.remove(index);
  60.       return true;      
  61.     }
  62.     return false;
  63.   }
  64.  
  65.   method.isCaseSensitive = function isCaseSensitive () { return  false };
  66.  
  67.   method.getIndexByField = function getIndexByField (fieldName, fieldValue) {
  68.     if (this._list != null) {      
  69.       for (var i=0;i<this._list.length;i++) {
  70.         var value = eval('this._list[i].'+fieldName);
  71.         if (value == fieldValue) {
  72.           return i;
  73.         }
  74.       }
  75.     }
  76.     return -1;
  77.   }
  78.  
  79.   method.getByField = function getByField (fieldName, fieldValue) {
  80.     var index = this.getIndexByField (fieldName, fieldValue);
  81.     if (index != -1)
  82.       return this.get(index);
  83.     return null;
  84.   }
  85.   
  86.   method.setSelectedByElement = function setSelectedByElement (elem) {
  87.     var index = this.getIndex(elem);
  88.     this.setSelectedByIndex (index);
  89.   }
  90.  
  91.   method.setSelectedById = function setSelectedById (id) {
  92.     this.setSelectedByField ("id", id);
  93.   }
  94.  
  95.   method.setSelectedByField = function setSelectedByField (fieldName, fieldValue) {
  96.     var index = this.getIndexByField(fieldName, fieldValue);
  97.     if (index != -1) 
  98.       this.setSelectedByIndex (index);
  99.   }
  100.   
  101.   method.setSelectedByIndex = function setSelectedByIndex (index) {
  102.     if (this._list != null) {
  103.       if (index < this._list.length) {
  104.         this.selectedIndex = index;
  105.         this.selected = this._list[index];
  106.       }
  107.     }
  108.   }
  109.  
  110.   method.getSelected = function getSelected () {
  111.     return this.selected;
  112.   }
  113.   
  114.   method.getSelectedIndex = function getSelectedIndex() {
  115.     return this.selectedIndex;
  116.   }
  117.   method.setSelectedIndex = function setSelectedIndex(index) {
  118.     this.setSelectedByIndex(index);
  119.   }
  120. }
  121.  
  122. NOF_DataCollection_ProtoBuilder();
  123. NOF.__proto__.DataCollection = NOF_DataCollection;
  124.